package es.nadalgoyo.frikiquest;

import android.os.Bundle;
import android.widget.TextView;
import es.nadalgoyo.frikiquest.control.ComposicionPreguntaControl;
import es.nadalgoyo.frikiquest.control.listener.OnResponseListener;
import es.nadalgoyo.frikiquest.control.style.Fonts;
import es.nadalgoyo.frikiquest.control.util.ThreadTiempo;
import es.nadalgoyo.frikiquest.util.Util;
import es.nadalgoyo.frikiquest.R;
import es.sergionadal.mvc.dispatcher.AbstractDispatcher;
import es.sergionadal.mvc.dispatcher.exception.DispatcherException;

abstract class AbstractCuestionActivity extends FrikiTrivialActivity {

	public static final int TIEMPO = 0, APUESTA = 1;

	private ComposicionPreguntaControl composicion;

	protected ThreadTiempo tTiempo;

	abstract AbstractDispatcher reponseListener(boolean isOK);

	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.cuestion);

		composicion = (ComposicionPreguntaControl) findViewById(R.id.CtlComposicion);
		composicion.setActivity(this);
		composicion.inicializar();

		composicion.setOnResponseListener(new OnResponseListener() {
			@Override
			public void onResponse(boolean isOK) {
				try {
					reponseListener(isOK).dispatch();
				} catch (DispatcherException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
					Util.showErrorMensaje(AbstractCuestionActivity.this,
							e.getMessage(), true);
				}
			}
		});

		TextView puntuacion = (TextView) findViewById(R.id.TxtPuntuacion);
		puntuacion.setTypeface(Fonts.getLordOfTheRings(getAssets()));

		puntuacion.setText(getString(R.string.puntos).concat(
				String.valueOf(getPuntuacion())));

	}

	@Override
	protected void onResume() {
		super.onResume();
		if (this instanceof CuestionTiempoActivity) {
			timeInit();
		}
	}

	public ComposicionPreguntaControl getComposicion() {
		return composicion;
	}

	protected void timeInit() {
		return;
	}

}